
### 项目三 光敏电阻传感器

**项目介绍**：

![image65](../media/f9c66a79affc1091bbcf4bffdc165d45.png)

在套件中，包含两个光敏电阻模块，我们可以利用这两个模块和小车搭配做一个追光智能车。在这一课程中，我们先学习了解下光敏电阻模块和使用方法。

光敏电阻环境光线最敏感，不同的光照强度，光敏电阻的阻值不一样。我们利用光敏电阻该特性，设计电路，生成光敏电阻模块。模块信号端连接单片机模拟口，当光照强度越强时，模拟口电压越大，即单片机的模拟值也大；反之，光照强度越弱时，模拟口电压越小，即单片机的模拟值也小。这样，我们就可以利用光敏电阻模块读取对应模拟值，感应环境中光照强度了。

**参数：**

工作电压：3.3V-5V（DC）

接口：3PIN接口

输出信号：模拟信号

**项目组件：**

| UNO PLUS 开发板\*1                                        | L298P 电机驱动扩展板 V1\*1                                | LED白发红模块\*1                                          | 光敏电阻传感器\*2                                         |
| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- |
| ![image66](../media/67417bd98f12bffd0352f76063e5abbd.png) | ![image67](../media/3dca1bdd1d1420c1d12b16cbf52fee00.png) | ![image68](../media/31fb938502d3d519813c391569d6a3f3.png) | ![image69](../media/38302d49415c7ec92ebb90570c12b3ca.png) |
| HX-2.54 3P 双头 26AWG\*2                                  | 3Pin 双母头杜邦线\*1                                      | USB线\*1                                                  | 18650双节电池盒 (18650电池*2(电池自配))*1                 |
| ![image70](../media/48c7340bfa43bfdc431086e53285310c.png) | ![image71](../media/07752ebfc8e8af62f1b86c4a725ea284.jpg) | ![image72](../media/2adb48888136bedc4d6b37d47a47b292.jpg) | ![image73](../media/c5bf59a8e5cdded95c02334369ab6fdd.png) |

**接线图:**

**⚠️特别注意：坦克智能车已经组装好了，这里不需要把传感器模块和其他的都拆下来又重新组装和接线，这里再次提供接线图，是为了方便您编写代码。但是，LED灯是需要另外连接上去的！**

接线注意：左边的光敏电阻模块的“-”、“+”和S引脚分别接在keyes传感器扩展板G（GND）、V（VCC）、A1；同样地，右边的光敏电阻模块接在G（GND）、V（VCC）A2。我们这里先在左边接一个测试。

![image74](../media/699ddc22f84ee584287e5f3d9f35e035.png)

**项目代码：**

（**特别提醒：在上传程序代码前，需要把蓝牙模块取下，否则代码会上传失败。需要上传代码成功后，再连接蓝牙模块。**）

![image75](../media/img-20250618112332.png)

**项目结果：**

上传代码到开发板，单击![image76](../media/img-20250618112826.png)，在串口监视器窗口设置波特率为9600。可以看到打印出的光敏传感器检测的值，如果我们用手给它遮挡光线，我们发现值变小了。

![image77](../media/img-20250618112256.png)

**项目拓展：**

上面我们了解了光敏传感器的工作原理，接下来我们用到两个光敏传感器，分别接在A1（左）和A2（右）。在第9脚接上一个LED灯，然后通过读取左右两个光敏传感器的状态，来控制LED的亮和灭。如下图接线：

![image78](../media/9bd3c21cc318d3a8f16febf3c3543c61.png)

我们开始来编写代码：

（**特别提醒：在上传程序代码前，需要把蓝牙模块取下，否则代码会上传失败。需要上传代码成功后，再连接蓝牙模块。**）

![image79](../media/img-20250618112931.png)

上传代码到开发板，用我们的手去一个个的遮掩光敏传感器，我们看看LED灯的状态发生了改变没有？当我们用手去遮挡任一光敏传感器的时候，我们可以看到LED灯亮起来了，同时串口显示对应光敏传感器的检测也变小了；反之，则相反。

![image80](../media/img-20250618112801.png)

**代码解释：**

![image81](../media/img-20250618113008.png)

串口打印光敏传感器检测到的光照强度模拟值。

![image82](../media/img-20250618113115.png)

这些是逻辑运算符号。

![image83](../media/img-20250618113222.png)

这是简单的条件判断语句，如果![image84](../media/img-20250618113242.png)里的表达式为真，则执行
“执行” 块内的代码。

![image85](../media/img-20250618113402.png)

这也是简单的条件判断语句，如果![image86](../media/img-20250618113242.png)里的表达式为真，则执行
“执行”
块内的代码。如果![image87](../media/img-20250618113242.png)里表达式为假
，则执行 “否则” 块内的代码。

![image88](../media/img-20250618113612.png)

如果左侧的光敏传感器检测到的光照强度模拟值小于300或者右侧的光敏传感器检测到的光照强度模拟值小于300时，LED点亮；否则，LED不亮。